<?php

/** 
 * @author felipe
 * 
 * 
 */
class App_Model_Db_ItemCompra extends Voitech_Db {
	
	protected $_name = 'item_compra';
	protected $_primary = array('co_compra','co_produto');
	
	static private $instancia;

	/**
	 * @return App_Model_Db_ItemCompra
	 */
	static public function build() {
		if( !isset( self::$instancia ) ) {
			$classe = __CLASS__;
			self::$instancia = new $classe;
		}
		return self::$instancia;
	}
	
	public function listarTodos(Voitech_TO $obTO) {
            $obSelect = $this->getAdapter()->select()
                                           ->distinct()
                                           ->from(array('itemCompra'=>'item_compra'))
                                           ->joinInner(array('produto'=>'produto')
                                                              ,'produto.co_produto = itemCompra.co_produto'
                                                              ,array('no_produto'))
                                           ->joinInner(array('tipoProduto'=>'tipo_produto')
                                                              ,'tipoProduto.co_tipo_produto = produto.co_tipo_produto'
                                                              ,array('co_tipo_produto','no_tipo_produto'))
                                           ->joinInner(array('categoriaproduto'=>'categoria')
                                                              ,'categoriaproduto.co_categoria = produto.co_categoria'
                                                              ,array('co_categoria', 'no_categoria' ) );

            if( !empty( $obTO->co_compra ) ) {
                    $obSelect->where('itemCompra.co_compra = ?',$obTO->co_compra);
            }
            if( !empty( $obTO->st_ativo ) ) {
                    $obSelect->where('itemCompra.st_ativo like ?',$obTO->st_ativo);
            }		
            return $this->getAdapter()->fetchAll($obSelect);							   			  
	}
        
        public function buscarPorId($coProduto,$coCompra){
            	$obSelect = $this->getAdapter()->select()
                                               ->distinct()
                                               ->from(array('itemCompra'=>'item_compra'))
                                               ->joinInner(array('produto'=>'produto')
                                                                  ,'produto.co_produto = itemCompra.co_produto'
                                                                  ,array('noProduto'))
                                               ->joinInner(array('tipoProduto'=>'tipo_produto')
                                                                  ,'tipoProduto.co_tipo_produto = produto.co_tipo_produto'
                                                                  ,array('co_tipo_produto','no_tipo_produto'))
                                               ->joinInner(array('categoriaproduto'=>'categoria')
                                                                  ,'categoriaproduto.co_categoria = produto.co_categoria'
                                                                  ,array('co_categoria', 'no_categoria' ) )
                                                ->where('produto.co_produto = ?',$coProduto)
                                                ->where('itemCompra.co_compra = ?',$coCompra);
                return $this->getAdapter()->fetchRow($obSelect);
                
        }
}